package org.example.purchase.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 采购清单对象 b_purchase_list
 * 
 * @author ruoyi
 * @date 2024-07-18
 */
public class PurchaseList extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 采购清单ID */
    private Long purchaseListId;

    /** 合同ID */
    @Excel(name = "合同ID")
    private Long contractId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractCode;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    private String supplierName;

    /** 金额 */
    @Excel(name = "金额")
    private BigDecimal totalAmount;

    /** 付款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "付款日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date paymentDate;

    /** 合同日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "合同日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date contractDate;

    /** 是否含税（0否1是） */
    @Excel(name = "是否含税", readConverterExp = "0=否,1=是")
    private String isTaxIncluded;

    /** 是否到货（0否1是） */
    @Excel(name = "是否到货", readConverterExp = "0=否,1=是")
    private String isDelivered;

    /** 发票情况 */
    @Excel(name = "发票情况")
    private String invoiceStatus;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 定货数量 */
    @Excel(name = "定货数量")
    private Long orderQuantity;

    /** 用途 */
    @Excel(name = "用途")
    private String usagePurpose;

    /** 货期 */
    @Excel(name = "货期")
    private String deliveryPeriod;

    /** 到货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "到货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date arrivalDate;

    /** 订货人 */
    @Excel(name = "订货人")
    private String purchaser;

    /** 状态（0正常1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    public void setPurchaseListId(Long purchaseListId) 
    {
        this.purchaseListId = purchaseListId;
    }

    public Long getPurchaseListId() 
    {
        return purchaseListId;
    }
    public void setContractId(Long contractId) 
    {
        this.contractId = contractId;
    }

    public Long getContractId() 
    {
        return contractId;
    }
    public void setContractCode(String contractCode) 
    {
        this.contractCode = contractCode;
    }

    public String getContractCode() 
    {
        return contractCode;
    }
    public void setSupplierName(String supplierName) 
    {
        this.supplierName = supplierName;
    }

    public String getSupplierName() 
    {
        return supplierName;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setPaymentDate(Date paymentDate) 
    {
        this.paymentDate = paymentDate;
    }

    public Date getPaymentDate() 
    {
        return paymentDate;
    }
    public void setContractDate(Date contractDate) 
    {
        this.contractDate = contractDate;
    }

    public Date getContractDate() 
    {
        return contractDate;
    }
    public void setIsTaxIncluded(String isTaxIncluded) 
    {
        this.isTaxIncluded = isTaxIncluded;
    }

    public String getIsTaxIncluded() 
    {
        return isTaxIncluded;
    }
    public void setIsDelivered(String isDelivered) 
    {
        this.isDelivered = isDelivered;
    }

    public String getIsDelivered() 
    {
        return isDelivered;
    }
    public void setInvoiceStatus(String invoiceStatus) 
    {
        this.invoiceStatus = invoiceStatus;
    }

    public String getInvoiceStatus() 
    {
        return invoiceStatus;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setOrderQuantity(Long orderQuantity) 
    {
        this.orderQuantity = orderQuantity;
    }

    public Long getOrderQuantity() 
    {
        return orderQuantity;
    }
    public void setUsagePurpose(String usagePurpose) 
    {
        this.usagePurpose = usagePurpose;
    }

    public String getUsagePurpose() 
    {
        return usagePurpose;
    }
    public void setDeliveryPeriod(String deliveryPeriod) 
    {
        this.deliveryPeriod = deliveryPeriod;
    }

    public String getDeliveryPeriod() 
    {
        return deliveryPeriod;
    }
    public void setArrivalDate(Date arrivalDate) 
    {
        this.arrivalDate = arrivalDate;
    }

    public Date getArrivalDate() 
    {
        return arrivalDate;
    }
    public void setPurchaser(String purchaser) 
    {
        this.purchaser = purchaser;
    }

    public String getPurchaser() 
    {
        return purchaser;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }
    public void setUpdateBy(String updateBy) 
    {
        this.updateBy = updateBy;
    }

    public String getUpdateBy() 
    {
        return updateBy;
    }
    public void setUpdateTime(Date updateTime) 
    {
        this.updateTime = updateTime;
    }

    public Date getUpdateTime() 
    {
        return updateTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("purchaseListId", getPurchaseListId())
            .append("contractId", getContractId())
            .append("contractCode", getContractCode())
            .append("supplierName", getSupplierName())
            .append("totalAmount", getTotalAmount())
            .append("paymentDate", getPaymentDate())
            .append("contractDate", getContractDate())
            .append("isTaxIncluded", getIsTaxIncluded())
            .append("isDelivered", getIsDelivered())
            .append("invoiceStatus", getInvoiceStatus())
            .append("productName", getProductName())
            .append("orderQuantity", getOrderQuantity())
            .append("usagePurpose", getUsagePurpose())
            .append("deliveryPeriod", getDeliveryPeriod())
            .append("arrivalDate", getArrivalDate())
            .append("purchaser", getPurchaser())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .toString();
    }
}